package com.developpez.rpouiller.testsjunit4.java4;

import org.junit.Assert;
import org.junit.Test;

public class TestSimple {

    /**
     * test d'addition de 2 nombres
     */
    @Test
    public void testAdditionAvecDeuxNombres() {
        final long lAddition = Operations.additionner(new long[] { 10, 20 });
        Assert.assertEquals(30, lAddition);
    }

    /**
     * test d'addition de 5 nombres
     */
    @Test
    public void testAdditionAvecCinqNombres() {
        final long lAddition = Operations.additionner(new long[] { 1, 2,4, 8, 16 });
        Assert.assertEquals(31, lAddition);
    }

    /**
     * test de multiplication de 2 nombres
     */
   /*
    public void testMutiplicationAvecDeuxNombres() {
        final long lMultiplication = Operations
                .multiplier(new long[] { 10, 20 });
        Assert.assertEquals(200, lMultiplication);

    @Test
    public void mutiplicationAvecDeuxNombres() {
        final long lMultiplication = Operations.multiplier(new long[]{10, 20});
        Assert.assertEquals(200, lMultiplication);

    }

*/
    /**
     * test de multiplication de 5 nombres
     */
/*

 
    /** 
     * test de multiplication de 5 nombres 
     */
    @Test
    public void testMutiplicationAvecCinqNombres() {

        final long lMultiplication = Operations.multiplier(new long[] { 1, 1,
                1, 1, 1 });
        Assert.assertEquals(1, lMultiplication);
    }

    /**
     * test de diviser de 2 nombres
     */
    @Test
    public void testDiviserAvecDeuxNombres() {
        final long lDiviser = Operations.diviser(new long[] { 500, 5 });
        Assert.assertEquals(100, lDiviser);
    }

    /**
     * test de diviser de 2 nombres
     */
    @Test
    public void testDiviserAvecCinqNombres() {
        final long lDiviser = Operations
                .diviser(new long[] { 120, 5, 4, 3, 2 });
        Assert.assertEquals(1, lDiviser);
    }

    /**
     * test de soustraire de 5 nombres
     *//*
    @Test
    public void testSoustraireAvecCinqNombres() {
        final long lSoustraire = (long) Operations.soustraire(new long[] { 120,
                1, 1, 1, 1 });
        Assert.assertEquals(116, lSoustraire);
    }
*/
    /**
     * test de soustraire de 2 nombres
     */
    /*
    @Test
    public void testSoustraireAvecDeuxNombres() {
        final long lSoustraire = (long) Operations.soustraire(new long[] { 785,
                423 });
        Assert.assertEquals(362, lSoustraire);
        final long lMultiplication = Operations.multiplier(new long[]{2, 5, 24, 120, 1027});
        Assert.assertEquals(29577600, lMultiplication);
    }
    */
    /** 
     * test de soustraction de 2 nombres 
     */
    /*
    @Test
    public void testSoustractionAvecDeuxNombres() {
        final long lSoustraction = (long)Operations.soustraire(new long[]{785, 423});
        Assert.assertEquals(362, lSoustraction);
    }
    */
    /** 
     * test de soustraction de 5 nombres 
     */
    /*
    @Test
    public void testSoustractionAvecCinqNombres() {
        final long lSoustraction = (long)Operations.soustraire(new long[]{4527, 1254, 257, 85, 34});
        Assert.assertEquals(2897, lSoustraction);
    }
    */
    /** 
     * test de division de 2 nombres 
     */
    @Test
    public void testDivisionAvecDeuxNombres() {
        final long lDivision = (long)Operations.diviser(new long[]{42, 7});
        Assert.assertEquals(6, lDivision);
    }
    
    /** 
     * test de division de 5 nombres 
     */
    @Test
    public void testDivisionAvecCinqNombres() {
        final long lDivision = (long)Operations.diviser(new long[]{120, 5, 4, 3, 2});
        Assert.assertEquals(1, lDivision);
    }
    
    /** 
     * test de pythagore avec 1 triangle
     */
    @SuppressWarnings("deprecation")
	@Test
    public void testPythagoreAvecUnTriangle() {
    	
        final Boolean[] lPythagore = Operations.pythagore(new long[][]{{3,4,5}});
        Assert.assertEquals(new Boolean[]{true}, lPythagore);
    }
    
    /** 
     * test de pythagore avec 2 triangles
     */
    @SuppressWarnings("deprecation")
	@Test
    public void testPythagoreAvecDeuxTriangles() {
    	
        final Boolean[] lPythagore = Operations.pythagore(new long[][]{{3,4,5},{14,4,27}});
        Assert.assertEquals(new Boolean[]{true, false}, lPythagore);
    }

    /**
     * test de soustraire de 2 triangles (2 tableau de long)
     */
    @SuppressWarnings("deprecation")

    public void testPythagoreAvecDeuxTab() {
        final Boolean[] lPythagore = Operations.pythagore(new long[][] {
                new long[] { 3, 4, 5 }, new long[] { 3, 4, 5 } });
        final Boolean[] lResult = new Boolean[] { true, true };
        Assert.assertEquals(lResult, lPythagore);
    }

    /**
     * test de soustraire de 1 triangle (1 tableau de long)
     */
    @SuppressWarnings("deprecation")

    public void testPythagoreAvecUnTab() {
        final Boolean[] lPythagore = Operations
                .pythagore(new long[][] { new long[] { 3, 4, 5 } });
        final Boolean[] lResult = new Boolean[] { true };
        Assert.assertEquals(lResult, lPythagore);
    }

}
